visibility-decoration. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@114486 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/deque b/include/deque index 94844cb..6a1a552 100644 --- a/include/deque +++ b/include/deque 
@@ -159,7 +159,7 @@    template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,  class _DiffType, _DiffType _BlockSize> -class __deque_iterator; +class _LIBCPP_VISIBLE __deque_iterator;    template <class _RAIter,  class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2> @@ -251,7 +251,7 @@    template <class _ValueType, class _Pointer, class _Reference, class _MapPointer,  class _DiffType, _DiffType _BlockSize> -class __deque_iterator +class _LIBCPP_VISIBLE __deque_iterator  {  typedef _MapPointer __map_iterator;  public: @@ -399,9 +399,9 @@  : __m_iter_(__m), __ptr_(__p) {}    template <class _Tp, class _A> friend class __deque_base; - template <class _Tp, class _A> friend class deque; + template <class _Tp, class _A> friend class _LIBCPP_VISIBLE deque;  template <class _V, class _P, class _R, class _MP, class _D, _D> - friend class __deque_iterator; + friend class _LIBCPP_VISIBLE __deque_iterator;    template <class _RAIter,  class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2> @@ -941,6 +941,7 @@    bool __invariants() const;   + _LIBCPP_INLINE_VISIBILITY  void __move_assign(__deque_base& __c)  {  __map_ = _STD::move(__c.__map_); @@ -950,28 +951,35 @@  __c.__start_ = __c.size() = 0;  }   + _LIBCPP_INLINE_VISIBILITY  void __move_assign_alloc(__deque_base& __c)  {__move_assign_alloc(__c, integral_constant<bool,  __alloc_traits::propagate_on_container_move_assignment::value>());}    private: + _LIBCPP_INLINE_VISIBILITY  void __move_assign_alloc(const __deque_base& __c, true_type)  {  __alloc() = _STD::move(__c.__alloc());  }   + _LIBCPP_INLINE_VISIBILITY  void __move_assign_alloc(const __deque_base& __c, false_type)  {}   + _LIBCPP_INLINE_VISIBILITY  static void __swap_alloc(allocator_type& __x, allocator_type& __y)  {__swap_alloc(__x, __y, integral_constant<bool,  __alloc_traits::propagate_on_container_swap::value>());}   + _LIBCPP_INLINE_VISIBILITY  static void __swap_alloc(allocator_type& __x, allocator_type& __y, true_type)  {  using _STD::swap;  swap(__x, __y);  } + + _LIBCPP_INLINE_VISIBILITY  static void __swap_alloc(allocator_type& __x, allocator_type& __y, false_type)  {}  }; @@ -1127,7 +1135,7 @@  }    template <class _Tp, class _Allocator = allocator<_Tp> > -class deque +class _LIBCPP_VISIBLE deque  : private __deque_base<_Tp, _Allocator>  {  public: @@ -1169,6 +1177,7 @@  deque(initializer_list<value_type> __il, const allocator_type& __a);    deque& operator=(const deque& __c); + _LIBCPP_INLINE_VISIBILITY  deque& operator=(initializer_list<value_type> __il) {assign(__il); return *this;}    #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES @@ -1185,34 +1194,48 @@  void assign(_RAIter __f, _RAIter __l,  typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);  void assign(size_type __n, const value_type& __v); + _LIBCPP_INLINE_VISIBILITY  void assign(initializer_list<value_type> __il) {assign(__il.begin(), __il.end());}    allocator_type get_allocator() const;    // iterators:   + _LIBCPP_INLINE_VISIBILITY  iterator begin() {return __base::begin();} + _LIBCPP_INLINE_VISIBILITY  const_iterator begin() const {return __base::begin();} + _LIBCPP_INLINE_VISIBILITY  iterator end() {return __base::end();} + _LIBCPP_INLINE_VISIBILITY  const_iterator end() const {return __base::end();}   + _LIBCPP_INLINE_VISIBILITY  reverse_iterator rbegin() {return reverse_iterator(__base::end());} + _LIBCPP_INLINE_VISIBILITY  const_reverse_iterator rbegin() const {return const_reverse_iterator(__base::end());} + _LIBCPP_INLINE_VISIBILITY  reverse_iterator rend() {return reverse_iterator(__base::begin());} + _LIBCPP_INLINE_VISIBILITY  const_reverse_iterator rend() const {return const_reverse_iterator(__base::begin());}   + _LIBCPP_INLINE_VISIBILITY  const_iterator cbegin() const {return __base::begin();} + _LIBCPP_INLINE_VISIBILITY  const_iterator cend() const {return __base::end();} + _LIBCPP_INLINE_VISIBILITY  const_reverse_iterator crbegin() const {return const_reverse_iterator(__base::end());} + _LIBCPP_INLINE_VISIBILITY  const_reverse_iterator crend() const {return const_reverse_iterator(__base::begin());}    // capacity:  _LIBCPP_INLINE_VISIBILITY size_type size() const {return __base::size();} + _LIBCPP_INLINE_VISIBILITY  size_type max_size() const {return __alloc_traits::max_size(__base::__alloc());}  void resize(size_type __n);  void resize(size_type __n, const value_type& __v);  void shrink_to_fit(); - bool empty() const {return __base::size() == 0;} + _LIBCPP_INLINE_VISIBILITY bool empty() const {return __base::size() == 0;}    // element access:  reference operator[](size_type __i); @@ -1246,6 +1269,7 @@  template <class _BiIter>  iterator insert (const_iterator __p, _BiIter __f, _BiIter __l,  typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type* = 0); + _LIBCPP_INLINE_VISIBILITY  iterator insert(const_iterator __p, initializer_list<value_type> __il)  {return insert(__p, __il.begin(), __il.end());}  void pop_front(); @@ -1256,20 +1280,25 @@  void swap(deque& __c);  void clear();   + _LIBCPP_INLINE_VISIBILITY  bool __invariants() const {return __base::__invariants();}  private: + _LIBCPP_INLINE_VISIBILITY  static size_type __recommend_blocks(size_type __n)  {  return __n / __base::__block_size + (__n % __base::__block_size != 0);  } + _LIBCPP_INLINE_VISIBILITY  size_type __capacity() const  {  return __base::__map_.size() == 0 ? 0 : __base::__map_.size() * __base::__block_size - 1;  } + _LIBCPP_INLINE_VISIBILITY  size_type __front_spare() const  {  return __base::__start_;  } + _LIBCPP_INLINE_VISIBILITY  size_type __back_spare() const  {  return __capacity() - (__base::__start_ + __base::size()); @@ -1298,10 +1327,12 @@  void __move_construct_backward_and_check(iterator __f, iterator __l,  iterator __r, const_pointer& __vt);   + _LIBCPP_INLINE_VISIBILITY  void __copy_assign_alloc(const deque& __c)  {__copy_assign_alloc(__c, integral_constant<bool,  __alloc_traits::propagate_on_container_copy_assignment::value>());}   + _LIBCPP_INLINE_VISIBILITY  void __copy_assign_alloc(const deque& __c, true_type)  {  if (__base::__alloc() != __c.__alloc()) @@ -1313,6 +1344,7 @@  __base::__map_.__alloc() = __c.__map_.__alloc();  }   + _LIBCPP_INLINE_VISIBILITY  void __copy_assign_alloc(const deque& __c, false_type)  {}   @@ -1401,14 +1433,14 @@  #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  deque<_Tp, _Allocator>::deque(deque&& __c)  : __base(_STD::move(__c))  {  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  deque<_Tp, _Allocator>::deque(deque&& __c, const allocator_type& __a)  : __base(_STD::move(__c), __a)  { @@ -1420,7 +1452,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  deque<_Tp, _Allocator>&  deque<_Tp, _Allocator>::operator=(deque&& __c)  { @@ -1501,7 +1533,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  _Allocator  deque<_Tp, _Allocator>::get_allocator() const  { @@ -1560,7 +1592,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  typename deque<_Tp, _Allocator>::reference  deque<_Tp, _Allocator>::operator[](size_type __i)  { @@ -1569,7 +1601,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  typename deque<_Tp, _Allocator>::const_reference  deque<_Tp, _Allocator>::operator[](size_type __i) const  { @@ -1578,7 +1610,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  typename deque<_Tp, _Allocator>::reference  deque<_Tp, _Allocator>::at(size_type __i)  { @@ -1589,7 +1621,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  typename deque<_Tp, _Allocator>::const_reference  deque<_Tp, _Allocator>::at(size_type __i) const  { @@ -1600,7 +1632,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  typename deque<_Tp, _Allocator>::reference  deque<_Tp, _Allocator>::front()  { @@ -1609,7 +1641,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  typename deque<_Tp, _Allocator>::const_reference  deque<_Tp, _Allocator>::front() const  { @@ -1618,7 +1650,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  typename deque<_Tp, _Allocator>::reference  deque<_Tp, _Allocator>::back()  { @@ -1627,7 +1659,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  typename deque<_Tp, _Allocator>::const_reference  deque<_Tp, _Allocator>::back() const  { @@ -2665,7 +2697,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  void  deque<_Tp, _Allocator>::swap(deque& __c)  { @@ -2673,7 +2705,7 @@  }    template <class _Tp, class _Allocator> -inline +inline _LIBCPP_INLINE_VISIBILITY  void  deque<_Tp, _Allocator>::clear()  {